﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Text;

namespace iNet.Win32
{
	#region IPortableDevice
	/*
	[ComImport]
	[Guid("625e2df8-6392-4cf0-9ad1-3cfa5f17775c")]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[CoClass(typeof(PortableDevice))]
	public interface IPortableDevice
	{

	}
	*/
    #endregion
	#region IPortableDeviceManager
	[ComImport]
	[Guid("a1567595-4c2f-4574-a6fa-ecef917b9a40")]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[CoClass(typeof(PortableDeviceManager))]
	public interface IPortableDeviceManager
	{
		void GetDevices([MarshalAs(UnmanagedType.LPArray)] IntPtr[] pPnPDeviceIDs, ref uint pcPnPDeviceIDs);
		void RefreshDeviceList();
		void GetDeviceFriendlyName(string pszPnPDeviceID, StringBuilder pDeviceFriendlyName, ref uint pcchDeviceFriendlyName);
		void GetDeviceDescription(string pszPnPDeviceID, StringBuilder pDeviceDescription, ref uint pcchDeviceDescription);
		void GetDeviceManufacturer(string pszPnPDeviceID, StringBuilder pDeviceManufacturer, ref uint pcchDeviceManufacturer);
		void GetDeviceProperty(string pszPnPDeviceID, string pszDevicePropertyName, [MarshalAs(UnmanagedType.LPArray)] byte[] pData, ref uint pcbData, ref uint pdwType);
		void GetPrivateDevices([MarshalAs(UnmanagedType.LPArray)] IntPtr[] pPnPDeviceIDs, ref uint pcPnPDeviceIDs);
	}
	#endregion
	#region IPortableDeviceValues
	/*
	[ComImport]
	[Guid("6848f6f2-3155-4f86-b6f5-263eeeab3143")]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[CoClass(typeof(PortableDeviceValues))]
	public interface IPortableDeviceValues
	{
		void GetCount(out uint pcelt);
		void GetAt(uint index);
	}
	*/
	#endregion
	#region PortableDevice
	/*
	[ComImport]
	[Guid("728a21c5-3d9e-48d7-9810-864848f0f404")]
	public class PortableDevice
	{ }
	*/
	#endregion
	#region PortableDeviceManager
	[ComImport]
	[Guid("0af10cec-2ecd-4b92-9581-34f6ae0637f3")]
	public class PortableDeviceManager
	{ }
	#endregion
	#region PortableDeviceValues
	/*
	[ComImport]
	[Guid("0c15d503-d017-47ce-9016-7b3f978721cc")]
	public class PortableDeviceValues
	{ }
	*/
    #endregion
}
